// +FHDR------------------------------------------------------------
//                 Copyright (c) 2022 .
//                       ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename      : sanity_case.sv
// Author        : 
// Created On    : 2022-08-25 18:05
// Last Modified : 
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------

`ifndef __SANITY_CASE_SV__
`define __SANITY_CASE_SV__

class sanity_case_seq extends xxx_sequence;

	extern function new(string name = "sanity_case_seq");
	extern virtual task body();

	`uvm_object_utils(sanity_case_seq)
endclass: sanity_case_seq

function sanity_case_seq::new(string name = "sanity_case_seq");
	super.new(name);
endfunction: new

task sanity_case_seq::body();
	repeat(100) begin
		`uvm_do(xxx_tr)
	end
	#100;
endtask: body

class sanity_case extends base_test;

	extern function new(string name = "base_test", uvm_component parent=null);
	extern virtual function void build_phase(uvm_phase phase);
	
	`uvm_component_utils(sanity_case)
endclass: sanity_case

function sanity_case::new(string name = "base_test", uvm_component parent=null);
    super.new(name, parent);
endfunction: new

function void sanity_case::build_phase(uvm_phase phase);
	super.build_phase(phase);
	uvm_config_db #(uvm_object_wrapper)::set(
		this,
		"env.agt.sqr.main_phase",
		"default_sequence",
		sanity_case_seq::type_id::get()
	);
endfunction: build_phase

`endif
